home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ham Radio 2000
/
Ham Radio 2000.iso
/
ham2000
/
packet
/
p_tapr
/
tnchst
/
dlc.do4
< prev
next >
Wrap
Text File
|
1992-03-16
|
14KB
|
253 lines
.HE DL├ 1.ß Ma≥ 91
.FO #
.IG
.IG
.OJ ON
.PN 1
.IG Documen⌠ dedicateΣ t∩ thσ publiπ domaiε b∙ N2WX
.IG
.IG Retentioε oµ authorshi≡ noticσ woulΣ no⌠ bσ inappropriate
.IG
.IG
.IG
.OJ ON
.CW 10
.RR----L----!-----!-----!-----!-----!-----!-----!-----!-----!-----!-----------R
.PM 1
WARNIN╟ - EXPERIMENTER╙ ONLY!
Hos⌠ áámodσ ááoε ááTNC-2 áanΣ áderivativσ áTNC≤ áa⌠ áthi≤ átimσ áremain≤ ì
áááááááexperimental. Obviou≤ áfeature≤ áreceiveΣ áß áquicδ á"goinτ áover" anΣ ì
ááááááárathe≥ ácursor∙ ádebug, ábu⌠ ádiscover∙ áoµ áthσ áremaininτ áinevitablσ ì
ááááááábug≤ ááanΣ ácritica∞ áprogramminτ áoversight≤ áawait≤ áthσ áadventurou≤ ì
áááááááreader/developer. Pleasσ direc⌠ discoverie≤ anΣ criticisms:
viß slo≈ boa⌠ : t∩ HowarΣ Goldstein
5201-23rΣ Ave. N.
St. Petersburg, F╠ 33710 USA
viß compuser÷ : t∩ 75006,702
viß haφ packet: t∩ N2W╪ @ W4DPH.FL
Introduction
Thi≤ ádocumen⌠ ádescribe≤ áthσ data-linδ contro∞ protoco∞ (DLC) useΣ b∙ ì
áááááááthσ TNC-2 termina∞ nodσ controlle≥ oε it≤ RS-232 line.
Wherσ i⌠ fit≤ in
DL├ provide≤ áß ábidirectiona∞ áerror-protecteΣ two-wa∙ queue, fo≥ BL╨ ì
ááááááá(thσ binar∙ interfacσ protocol). DL├ use≤ thσ underlyinτ QAF╘ physica∞ ì
ááááááálaye≥ drive≥ a≤ it≤ transmissioε medium.
| |
| Applicatioε |
|(transpor⌠ intfc)| ^~~~~<> R╞ t∩ peer
+++++++++++++++++++ ________|________
| | | |
| | | |
| Compute≥ drive≥ | | TN├ drive≥ |
| (networδ intfc) | | (networδ intfc) |
| | | |
---------------------------- ----------------------------
Binar∙ Linδ Protoco∞ |*******| Binar∙ Linδ Protoco∞
(defineΣ elsewherσ | | (defineΣ elsewhere)
┌────────────────────────────┐ ┌────────────────────────────┐
│ │ │ │
│ │ │ │
│ DL├ │*********│ DL├ │
│ (defineΣ here) │ │ (defineΣ here) │
├────────────────────────────┤ ├────────────────────────────┤
│ QAF╘ │ │ QAF╘ │
│ (defineΣ elsewhere) │.........│ (defineΣ elsewhere) │
│ │ │ │
└────────────────────────────┘ └────────────────────────────┘
Key:
...... Onσ connection
****** Onσ o≥ morσ logica∞ connections
DL├ encapsulation
Thσ áDL├ interfacσ communicate≤ witΦ it≤ pee≥ interfacσ b∙ transceivinτ ì
áááááááDL├ packet≤ usinτ QAF╘ service≤ alonτ thσ underlyinτ QAF╘ link.
.CP 15
DL├ packe⌠ structure
ìè
.OJ OFF
>| DESTINATIONbytσ | SOURCEbytσ | CTRLbytσ | [variablσ pe≥ CTRL▌ |<
.OJ ON
byte:: 8 bi⌠ unsigneΣ integer
DESTINATION
SOURCE : áPhysica∞ áaddres≤ áoµ thσ sendinτ (SOURCE) anΣ sinkinτ (DESTINATION) ì
áááááááDL├ device≤ fo≥ thi≤ DL├ packet. <Optiona∞ iε TNC-2>
CTRL : typσ oµ packe⌠
Thσ áhigΦ ánibblσ áoµ áthσ ácontro∞ ábytσ contain≤ thσ DL├ packe⌠ type. ì
áááááááValue≤ iε thσ lo≈ nibblσ arσ sequencσ numbers.
hex
---
10 RESET - Linδ restar⌠ (request)
20 RESET_ACK - Linδ restarteΣ (response)
4x DATA - SequenceΣ datß (request)
(° := moΣ 16 sequencσ # oµ data)
5x DACK - SequenceΣ datß acknowledgement (response)
(° := moΣ 16 acknowledge≤ u≡ througΦ se± # x-1)
.CP 3
Defininτ DLC
DL├ ái≤ ß balanceΣ protocol. Sincσ therσ arσ n∩ master-slavσ relationì
áááááááships, áan∙ áonσ DL├ devicσ caε communicatσ witΦ an∙ othe≥ electricall∙ ì
áááááááconnecteΣ áDL├ ádevice. (fo≥ ex., onσ computer-onσ TNC, o≥ tw∩ computì
áááááááer≤ áanΣ án∩ áTNCs, áo≥ átw∩ TNC≤ back-to-back). Notσ howeve≥ tha⌠ thσ ì
ááááááácurren⌠ ááTNC-2 áimplementatioε ádoe≤ áno⌠ áspecif∙ ásource/destinatioε ì
áááááááaddressing, áthereforσ áonl∙ áonσ áDL├ álinδ áma∙ takσ placσ acros≤ thσ ì
áááááááphysica∞ medium.
DL├ ái≤ ádescribeΣ áanΣ wa≤ implementeΣ a≤ aε event-driveε finite-statσ ì
ááááááámachine.
DL├ Objects
EacΦ DL├ linδ use≤ thesσ variable≤ anΣ objects:
.RR---!-----L-----!-----!-----!-----!-----!-----!-----!-----!-----!-----R
ááááááááááááDLSTATE: Onσ áoµ án ástates. á(seσ sectioε oε DL├ states, ì
áááááááááááábelow)
ááááááááááááDQUEUE: áFIF╧ áqueuσ oµ packet≤ a≤ ye⌠ unacknowledgeΣ b∙ ì
ááááááááááááthσ pee≥ DL├ device.
.RR----L----!-----!-----!-----!-----!-----!-----!-----!-----!-----!-----------R
.PM 1
DL├ States
Fou≥ ástate≤ áanΣ áseveε áevent≤ arσ defined. Seσ thσ appendi° fo≥ thσ ì
ááááááástatσ tables.
States
DLIDLE
Thσ áDL├ álinδ ái≤ no≈ inactivσ anΣ await≤ eithe≥ (1) receip⌠ oµ ß linδ ì
ááááááárese⌠ á(RESET) ápacket; áo≥ á(2) áloca∞ commanΣ t∩ initiatσ aε outgoinτ ìèááááááácal∞ froφ thσ upper-leve∞ BL╨ driver.
Iµ áthσ DL├ machinσ receive≤ RESET, thσ DL├ drive≥ shal∞ responΣ witΦ ß ì
áááááááreset-acknowledgeΣ á(RESET_ACK) packe⌠ anΣ rese⌠ al∞ oµ it≤ uppe≥ leve∞ ì
áááááááBL╨ links.
DLRESET
Thσ áDL├ ámachinσ áenter≤ áthi≤ ástatσ áwheε áß loca∞ even⌠ occur≤ (ex: ì
áááááááupper-leve∞ áBL╨ áattempt≤ t∩ placσ ß call, o≥ ß datagraφ i≤ received). ì
áááááááWheε áthσ áBTIMER-expireΣ even⌠ occurs, thσ machinσ iε thi≤ statσ send≤ ì
áááááááß RESET packe⌠ t∩ thσ peer.
Thσ áDL├ ámachinσ leave≤ thi≤ statσ anΣ i≤ read∙ fo≥ datß transfe≥ wheε ì
áááááááß áreset-acknowledgeΣ á(RESET_ACK) áo≥ áanothe≥ áRESETindicatioε i≤ reì
áááááááceived.
DLDATA
Loca∞ áanΣ pee≥ DLC≤ arσ read∙ t∩ transact. Thσ statσ change≤ t∩ DWAI╘ ì
áááááááwheε áne≈ outgoinτ sequenceΣ datß packet≤ arσ enqueued. DDAT┴ statσ i≤ ì
áááááááreentereΣ oncσ al∞ outstandinτ packet≤ arσ acknowledged.
DLDWAIT
Thσ áDL├ machinσ ha≤ datß outstandinτ fo≥ thσ remotσ DLC, anΣ i≤ awaitì
áááááááinτ áß áresponse. Iµ ß BTIMER-expireΣ even⌠ occurs, thσ datß packet(s) ì
ááááááái≤ á(are) áretransmitted. Iµ ß DAC╦ packe⌠ acknowledginτ al∞ outstandì
áááááááinτ packet≤ i≤ received, thσ statσ change≤ t∩ DDATA.
DL├ packe⌠ types
.CP 15
RESE╘ - Cal∞ setup
format:
|DESTINATION|SOURCE|10|
^^^^^^^^^^^^^^^
(optional)
Iµ áthσ áDL├ linδ i≤ idle, onσ sidσ wil∞ transmi⌠ ß RESE╘ packe⌠ t∩ fi° ì
ááááááábotΦ side≤ oµ thσ linδ t∩ ß knowε (DLDATA) state.
Wheε áß ádevicσ receive≤ ß RESE╘ packe⌠ i⌠ shal∞ repl∙ witΦ ß RESET_AC╦ ì
ááááááápacke⌠ anΣ rese⌠ al∞ oµ thσ BL╨ circuit≤ it≤ associateΣ with.
RESET_AC╦ - DL├ resetted
format:
|DESTINATION|SOURCE|LCN|20|
^^^^^^^^^^^^^^^
(optional)
Receip⌠ áoµ áthσ áRESET_AC╦ ápacke⌠ indicate≤ tha⌠ thσ DL├ linδ i≤ sucì
ááááááácessfull∙ openeΣ anΣ BL╨ ma∙ begiε usinτ thσ link.
.CP 5
DLDAT┴ - SequenceΣ datß commanΣ packet
ìè
format:
|DESTINATION|SOURCE|4x|[data0...datan]|
^^^^^^^^^^^^^^^
(optional)
° :: sequencσ number, moΣ 16
DAC╦ - SequenceΣ datß acknowledgement
format:
|DESTINATION|SOURCE|5x|
^^^^^^^^^^^^^^^
(optional)
° :: sequencσ number, moΣ 16
Acknowledge≤ packet≤ througΦ sequencσ numbe≥ 'x'
.PA è.CW 7
.PO 11
.LH 5
.PL 105
.MT 4
.MB 12
.RR-------!--------------------!-----------------------!-------------------!--!----!--------!---------!----------------------!-----------------------!----------------------!--R
.OJ OFF
DL├ Statσ table
.OJ ON
r° DACK, all
| r° RESET |r° RESET_ACK |r° DATA | acknowledged | time≥ xpd |ne≈ datß queued | Loca∞ start
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|Rese⌠ BLP,cl≥ queues| | | | | | state>DLRESET
DLIDLE |senΣ RESET_ACK, | | | | | |
|state>DLDATA | | | | | |
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
| " | | | | | |
DLRESET | |state>DLDATA | | |senΣ RESE╘ pkt | |
| | | | | | |
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
| " | | | | | | |
DLDATA | | |senΣ DACK | | |state>DLDWAIT |
| | | | | | |
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
| " | | | | | |
DLDWAIT | | |senΣ DACK | state>DLDATA |senΣ al∞ DLDATA | |
| | | | | | |
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────